-
Notifications
You must be signed in to change notification settings - Fork 340
remove async storage from graphql #5966
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Overall package sizeSelf size: 9.69 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.7.0 | 35.02 MB | 35.02 MB | | @datadog/native-appsec | 10.0.1 | 20.3 MB | 20.3 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @datadog/pprof | 5.9.0 | 9.77 MB | 10.14 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.5.3 | 2.95 MB | 5.6 MB | | @datadog/wasm-js-rewriter | 4.0.1 | 2.85 MB | 3.58 MB | | @datadog/native-metrics | 3.1.1 | 1.02 MB | 1.43 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | jsonpath-plus | 10.3.0 | 617.18 kB | 1.08 MB | | import-in-the-middle | 1.14.2 | 122.36 kB | 850.93 kB | | lru-cache | 10.4.3 | 804.3 kB | 804.3 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.1 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 7.0.5 | 63.38 kB | 63.38 kB | | istanbul-lib-coverage | 3.2.2 | 34.37 kB | 34.37 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | dc-polyfill | 0.1.9 | 25.11 kB | 25.11 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | shell-quote | 1.8.3 | 23.74 kB | 23.74 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | mutexify | 1.4.0 | 5.71 kB | 8.74 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.4 | 3.96 kB | 3.96 kB |🤖 This report was automatically generated by heaviest-objects-in-the-universe |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #5966 +/- ##
==========================================
+ Coverage 81.98% 82.82% +0.84%
==========================================
Files 475 476 +1
Lines 19598 19684 +86
==========================================
+ Hits 16067 16304 +237
+ Misses 3531 3380 -151 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Datadog ReportBranch report: ✅ 0 Failed, 1257 Passed, 0 Skipped, 20m 16.99s Total Time |
BenchmarksBenchmark execution time: 2025-07-21 21:34:16 Comparing candidate commit 5b86f73 in PR branch Found 48 performance improvements and 0 performance regressions! Performance is the same for 1224 metrics, 51 unstable metrics. scenario:plugin-graphql-with-depth-and-collapse-off-18
scenario:plugin-graphql-with-depth-and-collapse-off-20
scenario:plugin-graphql-with-depth-and-collapse-off-22
scenario:plugin-graphql-with-depth-and-collapse-on-18
scenario:plugin-graphql-with-depth-and-collapse-on-20
scenario:plugin-graphql-with-depth-and-collapse-on-22
scenario:plugin-graphql-with-depth-off-18
scenario:plugin-graphql-with-depth-off-20
scenario:plugin-graphql-with-depth-off-22
scenario:plugin-graphql-with-depth-on-max-18
scenario:plugin-graphql-with-depth-on-max-20
scenario:plugin-graphql-with-depth-on-max-22
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few nits/questions but the code LGTM, it actually simplifies things a lot which is great!
I think now that AsyncResource
is gone it will even be possible to refactor this integration to be even simpler in the future 👍
fields: {}, | ||
abortController: new AbortController() | ||
} | ||
return startExecuteCh.runStores(ctx, () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The previous code would skip this channel if contexts
container contextValue
to avoid double patching. This doesn't seem to be handled with the new code (it probably needs to be checked somehow in the plugin now since startExecuteCh
handles both starting the span and context management which were separated before).
const field = getField(context, path.slice(0, i)) | ||
if (field) { | ||
return field | ||
const fieldCtx = { info, ctx: parentCtx, args } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Renaming this ctx
will mean there is a field.ctx.ctx
. I'd probably keep the parentCtx
name instead.
const path = getPath(info, this.config) | ||
|
||
// we need to get the parent span to the field if it exists for correct span parenting |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't parentCtx
already the context of the parent field? Why is a search needed if that's the case?
What does this PR do?
Motivation
Plugin Checklist
Additional Notes